package workwx

import (
	"fmt"
)

type MsgTypeObj string

const (
	MsgTypeText     MsgTypeObj = "text"          // 文本
	MsgTypeMarkdown MsgTypeObj = "markdown"      // markdown
	MsgTypeImage    MsgTypeObj = "image"         // 图片
	MsgTypeNews     MsgTypeObj = "news"          // 图文
	MsgTypeFile     MsgTypeObj = "file"          // 文件
	MsgTypeTplCard  MsgTypeObj = "template_card" // 模版卡片
	TplCardTypeText MsgTypeObj = "text_notice"   // 文本通知模版卡片
	TplCardTypeNews MsgTypeObj = "news_notice"   // 图文展示模版卡片
)

// ValidateMsgType 验证
func ValidateMsgType(v MsgTypeObj) error {
	switch v {
	case MsgTypeText, MsgTypeMarkdown, MsgTypeImage, MsgTypeNews, MsgTypeFile, TplCardTypeText, TplCardTypeNews:
	default:
		return fmt.Errorf("%s not in [%q %q %q %q %q %q %q]", v,
			MsgTypeText, MsgTypeMarkdown, MsgTypeImage, MsgTypeNews, MsgTypeFile, TplCardTypeText, TplCardTypeNews)
	}
	return nil
}

// Message 企业微信群机器人消息
type Message struct {
	MsgType      MsgTypeObj    `json:"msgtype"`                 // 消息类型
	Text         *TextMeta     `json:"text,omitempty"`          // 文本消息
	Markdown     *MarkdownMeta `json:"markdown,omitempty"`      // markdown消息
	Image        *ImageMeta    `json:"image,omitempty"`         // 图片消息
	News         *NewsMeta     `json:"news,omitempty"`          // 图文消息
	File         *FileMeta     `json:"file,omitempty"`          // 文件消息
	TemplateCard any           `json:"template_card,omitempty"` // 模版卡片
}

const sendURL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key="
